package com.manli.wechat.utils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.manli.common.utils.HttpUtil;
import com.manli.wechat.pojo.WeChatQrCode;
import com.manli.wechat.pojo.WeChatSence;

import java.net.URLEncoder;

/**
 * 微信账号管理
 */
public class WeChatAccountManage extends WeChat{
    public WeChatAccountManage(String appid, String appsecret) {
        super(appid, appsecret);
    }

    /**
     * 微信账号管理
     * 创建二维码ticket
     * @return
     */
    public JSONObject createQrcode(String acceccToken, WeChatQrCode weChatQrCode) throws Exception{
        isInited();
        JSONObject json = (JSONObject) JSON.toJSON(weChatQrCode);
        return JSONObject.parseObject(HttpUtil.httpsPost(WeChatUrl.CREATE_QRCODE_URL + acceccToken,json,HttpUtil.JSON));
    }

    /**
     * 微信账号管理
     * 通过ticket换取二维码,返回的是图片，所以提供另一个接口，直接返回图片地址
     * @return
     */
    public JSONObject ticketDealQrcode(String ticket) throws Exception{
        isInited();
        return JSONObject.parseObject(HttpUtil.httpsGet(WeChatUrl.TICKET_DEAL_QRCODE_URL + URLEncoder.encode(ticket,"utf-8")));
    }

    /**
     * 微信账号管理
     * 直接返回图片地址
     * @return
     */
    public String qrcodeUrl(String ticket) throws Exception{
        return WeChatUrl.TICKET_DEAL_QRCODE_URL + URLEncoder.encode(ticket,"utf-8");
    }


    /**
     * 微信账号管理
     * 长链接转短链接
     * @return
     */
    public JSONObject longUrl2ShortUrl(String acceccToken, WeChatShortUrl weChatShortUrl) throws Exception{
        isInited();
        JSONObject json = (JSONObject) JSON.toJSON(weChatShortUrl);
        return JSONObject.parseObject(HttpUtil.httpsPost(WeChatUrl.LONG_URL_2_SHORT_URL + acceccToken,json,HttpUtil.JSON));
    }

}
